package com.fang.algorithm.leecode;

/**
 * @author fanglingxiao
 * @version 1.0
 * @description 数组中的第K个最大元素
 * 给定整数数组 nums 和整数 k，请返回数组中第 k 个最大的元素。
 * 请注意，你需要找的是数组排序后的第 k 个最大的元素，而不是第 k 个不同的元素。
 * <p>
 * 输入: [3,2,1,5,6,4] 和 k = 2
 * 输出: 5
 * @date 2022/1/17 5:27 下午
 **/
public class Test04_FindKthLargest {
    public static void main(String[] args) {
        int[] nums = {3, 2, 1, 5, 6, 4};
        int k = 2;
        int num = findKthLargest(nums, k);
        System.out.println(num);
    }

    private static int findKthLargest(int[] nums, int k) {
        if (null == nums || nums.length < k) {
            return -1;
        }
        for (int i = 0; i < nums.length; i++) {
            int maxNumIndex = 0;
            for (int j = i; j < nums.length; j++) {
                maxNumIndex = nums[maxNumIndex] < nums[j] ? j : maxNumIndex;
            }
            int temp = nums[i];
            nums[i] = nums[maxNumIndex];
            nums[maxNumIndex] = temp;
        }
        return nums[k];
    }
}
